package com.xxgc.springboot.generator;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;

import java.util.Collections;

/**
 * 基于Mybatis-plus的逆向工程生成工具类
 * 1、修改库名
 * 2、修改用户名密码
 * 3、修改作者
 * 4、修改包名
 * 5、修改要生成的表
 * 开始使用
 *
 * @program: springboot
 * @description:
 * @author: Mr.abel(ShiJiaYi)
 * @create: 2022-09-08 09:38
 **/
public class CodeGenerator {
    public static void main(String[] args) {
        //获取工程地址
        String systemUrlJava = System.getProperty("user.dir")+"\\src\\main\\java\\";
        String systemUrlMapper = System.getProperty("user.dir")+"\\src\\main\\resources\\mapper\\";
        //数据库地址
        String url = "jdbc:mysql://localhost:3306/spring_boot_study?serverTimezone=GMT%2b8";
        String username = "root";
        String password = "123456";
        FastAutoGenerator.create(url, username, password)
                .globalConfig(builder -> {
                    builder.author("Mr.Abel") // 设置作者
                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件
                            .disableOpenDir() //禁止打开输出目录
                            .outputDir(systemUrlJava); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com.xxgc.springboot") // 设置父包名
                            .moduleName(null) // 设置父包模块名
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, systemUrlMapper)); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder.entityBuilder().enableLombok(); //启动lombok
                    builder.mapperBuilder().enableMapperAnnotation().build(); //启用@mapper注释
                    builder.controllerBuilder().enableHyphenStyle().enableRestStyle(); //启用驼峰转连字符样式
                    builder.addInclude("news"); // 设置需要生成的表名
                })
                .execute();
    }
}
